<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">


<!--TO READ THIS HELP FILE, RIGHT-CLICK ON THE FILE NAME IN THE
    SOLUTION EXPLORER WINDOW AND SELECT "VIEW IN BROWSER"-->


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Picture Syndication Service Starter Kit</title>
<style>
<!--
BODY         { background: url('Images/top-vc2.gif') repeat-x; font-family: Verdana; font-size: 67% }
.maindiv     { background: url('Images/side-vc.gif') repeat-y; padding-left: 55px; padding-top: 5px; position: relative; height: 50px }
P            { margin-top: 0; margin-bottom: 6px; line-height:130% }
H1           { margin-top: 20px; margin-bottom: 12px; font-size:190% }
H2           { color: #585F56; left: -55px; position: relative; margin-top: 21px; margin-bottom: 9px; font-size:170% }
H3           { margin-top: 21px; margin-bottom: 9px; font-size: 140%;  font-weight: bold}
H4           { margin-top: 18px; margin-bottom: 9px; font-size: 140%; font-weight: bold}
OL           { margin-top: 0; margin-bottom: 9px; line-height:130%}
UL           { margin-top: 0; margin-bottom: 9px; line-height:130%}
LI           { margin-top: 0; margin-bottom: 6px }
BLOCKQUOTE   { margin-left: 20px }
TABLE        { padding: 4px; BACKGROUND: #f8f7ef; BORDER: #DDDCD6 1px solid; BORDER-COLLAPSE: collapse; margin-bottom: 9px; }
TR           { vertical-align: top} 
TD           { padding: 4px; font-family: Verdana; font-size: 67%; line-height: 130%} 
.contents    { line-height: 150% }
DIV.CodeBlock   { font-family: "Courier New"; font-size: 100%; margin-bottom: 6px; BACKGROUND: #f8f7ef; BORDER: #eeede6 1px solid; padding: 10px; }
.CodeInline  { font-family: "Courier New" }
.ProcedureLabel {margin-top: 12px; font-style: italic; font-weight: bold; color: #0D4CC3 } 
.FileNameCol { padding: 6px; BACKGROUND: #eeede6; width=220px; font-weight: bold}
-->
</style>
</head>

<body topmargin="0" leftmargin="0" rightmargin="20">
<div class="maindiv">

<a name="top">

<!-- MAIN CONTENT BEGINS -->

</a>

<p style="text-align:right; color: Red; font-weight: bold;">Beta 2</p>
<br />
<p><img src="Images/dpe.jpg" alt="Developer & Platform Evangelism" /></p>
 
<h1><a name="top">Starter Kit: Picture Syndication Service</a></h1>
<p class="contents"><font color="#003300"><b><a name="top">Contents:</a></b></font></p>
<p class="contents"><font color="#003300">
<a href="#Introduction">Introduction</a><br>
<a href="#Goals">Goals</a><br>
<a href="#GettingStarted">Getting Started</a><br>
<a href="#HowItWorks">How the Picture Syndication Service Works</a><br>
<a href="#Concepts">Concepts</a><br>
<a href="#Extending">Extending the Picture Syndication Service</a><br>
<a href="#ForMoreInformation">For More Information</a><br>
</font></p>

<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="Introduction">Introduction</a></h2>
	<p><img border="0" src="Images\pictureservices_thumbnail.png" alt="Syndication Service" align="right" style="margin-left: 15px; margin-bottom: 10px"
>
<p>This Visual C# Starter Kit is a ready-to-run syndication service that has been 
	developed using the Windows Communication Foundation and System.Syndication 
	components included in the .NET Framework 3.5. 
The service returns images using either an RSS or ATOM feed. The project comes ready to compile and run, and you can 
customize it with only a little extra C# programming. We've included a list of 
suggestions in the section <a href="#extending">Extending the Picture Syndication Service</a>. 
You are also free to use the source code as the basis for your own projects, and 
share your work with others or upload it to the Internet.</p>

<br>

<p><img border="0" src="Images\overview.png"  alt="Syndication Service" style="margin-left: 15px; margin-bottom: 10px">

<p>

	<b>Note:</b> This documentation assumes that you have a basic knowledge of programming
 concepts and the Visual C# environment. You can learn more about these topics in the product documentation
 by clicking <b>Help</b> on the Main Menu, and selecting <b>Contents</b>, <b>Index</b>, or <b>Search</b>. You can also access Help by 
 positioning the mouse cursor on language keywords or user interface elements such as windows
 or dialog boxes, and pressing <b>F1</b>.

</p>

<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="Goals">Goals</a></h2>
	<p class="MsoNormal">
	After reading through this starter kit documentation you will understand how to install and configure the 
	Picture Syndication Service, how the source code is organized, how the application works, and how you can 
	customize it using Visual C#.</p>
<br />				
<p class="MsoNormal">
The PictureSyndication starter kit demonstrates how to:
</p>
<ul>
	<li>Create a syndication service using the Windows Communication Foundation</li>
	<li>Consume feeds using System.Syndication (from within the FlickrPictureProvider)</li>
	<li>Search the local file system using Windows Desktop Search</li>
	<li>Include enclosures in RSS/ATOM feeds</li>
	<li>Extend RSS feeds to support Simple List Extensions</li>
	<li>Implement a provider model with three providers:  File System, Windows Desktop Search, Flickr</li>
</ul>
			

<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="GettingStarted">Getting Started</a></h2>

<h3>Building and running the Syndication Service</h3>

<p>Once your project is loaded into the Visual C# environment, you can 
compile and run the program in one step. </p>

<p class="ProcedureLabel">To build and run the Picture Syndication Service solution</p>

<ul>
	<li>
		Press F5 to <b>build</b> and start the service under the <b>debugger</b>.
	</li>
	<li>
		Open a browser and navigate to http://localhost:8000/pictures
	</li>
	<li>
		To view a list of endpoints for the service, browse to http://localhost:8000/help
	</li>
</ul>

	
<h3>Changing the Picture Provider</h3>

<p class="ProcedureLabel">To change the picture provider:</p>

<ol>
	<li>Open the App.config file.</li>
	<li>Scroll through the config file to find the &lt;pictures&gt; element</li>
	<li><p>Change the defaultProvider attribute value to the provider of your choice, 
		for example:</p>
	<div class="CodeBlock">  &lt;pictures defaultProvider="FileSystem"&gt;</div></li>
	<li><p>Press <b>F5</b> to run the application again.</p>
	</li>
</ol>

<p>Pictures are retrieved from the new provider.</p>



<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="HowItWorks">How 
the Picture Syndication Service Works </a></h2>

<p><img border="0" src="Images\designdetail.png"  alt="Syndication Service" style="margin-left: 15px; margin-bottom: 10px">


<h3>Picture Syndication Service Projects</h3>

<p>The solution contains three different C# projects.</p>

<table border="1" bordercolor= #DDDCD6 width="100%" style="border-collapse: collapse">
	<tr>
		<td class="FileNameCol">PictureSyndication</td>
		<td>Contains the WCF service interface and implementation</td>
	</tr>
	<tr>
		<td class="FileNameCol">PictureProvider</td>
		<td>Contains the different providers used by the service</td>
	</tr>
	<tr>
		<td class="FileNameCol">SyndicationExtensions</td>
		<td>Contains the code used to extend SyndicationFeeds with Simple List Extensions</td>
	</tr>
	</table>


<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="Concepts">Concepts</a></h2>

<h3>RSS and ATOM</h3>

<p>RSS feeds are an XML format for syndicating content on the Web. They are 
often used by sites for publishing their lists of current news articles or blog 
posts. An RSS feed has an <b>&lt;rss&gt;</b> node containing one <b>&lt;channel&gt;</b> 
node. The <b>&lt;channel&gt;</b> node has one or more &lt;item&gt; nodes, one for each of 
the articles or blog posts in the feed. It also contains a <b>&lt;title&gt;</b> 
element, that contains the title of the channel. Each <b>&lt;item&gt;</b> can contain 
a title, a link, and a description. A very simple example is below.</p>
<p>&nbsp;</p>

<div class="CodeBlock">
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New; color: blue">&lt;</span><span style="font-size: 10.0pt; font-family: Courier New; color: maroon">rss</span><span style="font-size: 10.0pt; font-family: Courier New; color: blue">
		</span>
		<span style="font-size: 10.0pt; font-family: Courier New; color: red">
		version</span><span style="font-size: 10.0pt; font-family: Courier New; color: blue">=</span><span style="font-size: 10.0pt; font-family: Courier New">&quot;<span style="color:blue">2.0</span>&quot;<span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">channel</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span>My 
		Feed<span style="color:blue">&lt;/</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span>Some 
		articles.<span style="color:blue">&lt;/</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span>http://msdn.microsoft.com/<span style="color:blue">&lt;/</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		</span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">item</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span>Article 
		1<span style="color:blue">&lt;/</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span>The 
		abstract of the article.<span style="color:blue">&lt;/</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue">&lt;</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span>http://msdn.microsoft.com/netframework<span style="color:blue">&lt;/</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;/</span><span style="color:maroon">item</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">item</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span>Article 
		2<span style="color:blue">&lt;/</span><span style="color:maroon">title</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span>Some 
		other abstract.<span style="color:blue">&lt;/</span><span style="color:maroon">description</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span>http://msdn.microsoft.com/vcsharp/<span style="color:blue">&lt;/</span><span style="color:maroon">link</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;&nbsp;&nbsp;
		<span style="color:blue">&lt;/</span><span style="color:maroon">item</span><span style="color:blue">&gt;</span></span></p>
		<p class="MsoNormal">
		<span style="font-size: 10.0pt; font-family: Courier New">&nbsp;
		<span style="color:blue">&lt;/</span><span style="color:maroon">channel</span><span style="color:blue">&gt;</span></span></p>
		<span style="font-size: 10.0pt; font-family: Courier New; color: blue">
		&lt;/</span><span style="font-size: 10.0pt; font-family: Courier New; color: maroon">rss</span><span style="font-size: 10.0pt; font-family: Courier New; color: blue">&gt;</span>
</div>

<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="Extending">Extending 
the Picture Syndication Service</a></h2>

<h3>Adding a Provider</h3>

<p>One way to easily enhance the syndication service is to add support for another provider. These steps show you how.</p>

<p class="ProcedureLabel">To add a provider:</p>

<ol>
	<li>In Solution Explorer, right-click the <b>Providers</b> folder in the <b>PictureProvider</b> project, point to
		<b>Add</b>, and click <b>class</b>.
	</li>
	<li>Make your class inherit from <b>PictureProvider.</b></li>
		<li>Implement your provider.</li>
	<li>
	    Add your provider to your configuration file
	    <div class="CodeBlock">
	        &lt;providers&gt;<br />
	        ...<br />
	        &lt;add name="YourProviderName" type="YourProviderType"&gt;<br />
	        ...
	     </div>
    </li>
    <li>Make your new provider the default provider as explained in the <a href="#GettingStarted">Getting Started</a> section.</li>
</ol>
<h2><A href="#top"><IMG src="Images\topjump-vc.gif" border=0></A><a name="ForMoreInformation">For 
More Information</a></h2>

<h3>Online Resources</h3>

<ul>    
	<li><a href="http://wcf.netfx3.com/">Windows Communication Foundation (WCF)</a></li>
	<li><a href="http://channel9.msdn.com/tags/WCF">Channel9 WCF Tag Center</a></li>
	<li><a href="http://channel9.msdn.com/Shows/The_EndPoint">Channel9 "The EndPoint" show</a></li>
	<li><a href="http://msdn2.microsoft.com/en-us/library/ms972319.aspx">Provider Model Design Pattern and Specification</a></li>
	<li><a href="http://msdn2.microsoft.com/en-us/library/ms686417.aspx">Simple List Extensions</a></li>
	<li><a href="http://go.microsoft.com/fwlink/?linkid=29939">Visual C# on MSDN</a></li>
	<li><a href="http://go.microsoft.com/fwlink/?LinkId=47767">MSDN RSS Feeds</a></li>
</ul>

<p>&nbsp;</p>

<p>
<a href="http://www.microsoft.com/info/cpyright.mspx">
&copy; Microsoft Corporation and/or its suppliers. All rights reserved. Terms of Use.</a>
</p>

<!-- DO NOT EDIT BELOW THIS LINE  -->
<p>&nbsp;</p>
</div>
</body>
</html>
